package com.study.course.mapper;

import java.util.List;

import com.study.common.core.domain.entity.SysUser;
import com.study.course.domain.SysCourse;
import com.study.student.domain.SysStudent;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

/**
 * 课程信息Mapper接口
 * 
 * @author ruoyi
 * @date 2025-05-21
 */
public interface SysCourseMapper 
{

    @Results({
            @Result(property = "studentId", column = "student_id"),
            @Result(property = "userId", column = "user_id"),
            @Result(property = "name", column = "name"),
            @Result(property = "gender", column = "gender"),
            @Result(property = "birthDate", column = "birth_date"),
            @Result(property = "deptId", column = "dept_id"),
            @Result(property = "contact", column = "contact")
    })
    @Select("SELECT * FROM sys_student")
     List<SysStudent> selectStudentList();


    /**
     * 查询课程信息
     * 
     * @param courseId 课程信息主键
     * @return 课程信息
     */
    public SysCourse selectSysCourseByCourseId(String courseId);

    /**
     * 查询课程信息列表
     * 
     * @param sysCourse 课程信息
     * @return 课程信息集合
     */
    public List<SysCourse> selectSysCourseList(SysCourse sysCourse);

    /**
     * 新增课程信息
     * 
     * @param sysCourse 课程信息
     * @return 结果
     */
    public int insertSysCourse(SysCourse sysCourse);

    /**
     * 修改课程信息
     * 
     * @param sysCourse 课程信息
     * @return 结果
     */
    public int updateSysCourse(SysCourse sysCourse);

    /**
     * 删除课程信息
     * 
     * @param courseId 课程信息主键
     * @return 结果
     */
    public int deleteSysCourseByCourseId(String courseId);

    /**
     * 批量删除课程信息
     * 
     * @param courseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysCourseByCourseIds(String[] courseIds);

    List<SysUser> selectSysUserTeacher(Long roleId);

}
